package com.ayu.shortlink.project.service;

import com.ayu.shortlink.project.dao.entity.ShortLinkDO;
import com.ayu.shortlink.project.dto.req.*;
import com.ayu.shortlink.project.dto.resp.ShortLinkPageRespDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

public interface RecycleBinService extends IService<ShortLinkDO> {
    /**
     * 回收站保存 (修改短链接的enable_status)
     * @param requestParam 请求参数
     */
    void saveRecycleBin(RecycleBinSaveReqDTO requestParam);

    /**
     * 分页查询回收站短链接
     * @param requestParam 分页查询短链接请求参数
     * @return 分页查询短链接返回结果
     */
    IPage<ShortLinkPageRespDTO> getPage(ShortLinkPageReqDTO requestParam);

    /**
     * 分页查询回收站短链接 版本2 相较于版本1 不用传gid
     * @param requestParam 分页查询短链接请求参数
     * @return 分页查询短链接返回结果
     */
    IPage<ShortLinkPageRespDTO> getRecycleBinPage(ShortLinkRecycleBinPageReqDTO requestParam);

    /**
     * 回收站恢复短链接
     * @param requestParam 请求参数
     */
    void recover(RecycleBinRecoverReqDTO requestParam);

    /**
     * 回收站删除短链接
     * @param requestParam 请求参数
     */
    void removeRecycleBin(RecycleBinRemoveReqDTO requestParam);
}
